﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SqlSugar;

namespace Model
{
    /// <summary>
    /// 公用
    /// </summary>
    public class BaseDBModelV2
    {
        /// <summary>
        /// 主键
        /// </summary>
        [Key]
        [StringLength(50)]
        [Description("主键")]
        [SugarColumn(IsPrimaryKey = true)]
        public string Id { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        [Description("创建时间")]
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 创建人ID
        /// </summary>
        [StringLength(50)]
        [Description("创建人ID")]
        public string CreateUser { get; set; }

        /// <summary>
        /// 创建人账号
        /// </summary>
        [StringLength(50)]
        [Description("创建人账号")]
        public string CreateUserCode { get; set; }

        /// <summary>
        /// 创建人姓名
        /// </summary>
        [StringLength(50)]
        [Description("创建人姓名")]
        public string CreateUserName { get; set; }
    }
    #region SqlSugar 不好用
    /*
      Column:用于指定实体属性与数据库列的映射关系。例如：[Column(IsPrimaryKey=true)] 表示该属性映射的列是主键。
      Ignore:使用此特性的属性不会被映射到数据库表中的任何列。
      NotNullable:指示该列在数据库中不允许为空。
      Default:为该列设置默认值。
      Comment:为该列添加注释。
      Display:用于指定在界面上显示该列的名称或描述。
      ForeignKey:当实体之间存在外键关系时使用，指定外键列的名称或关联的实体属性。
      AutoIncrement:指示该列是自增列，通常用于主键。
      IsRequired:指示该列是否为必填项。
      IsIdentity:指示该列是数据库的身份列（例如 SQL Server 中的 IDENTITY 列）。
      IsUnique:指示该列的值在表中必须是唯一的。
      MaxLength:用于指定字符串类型的最大长度。
      DataType:用于指定数据类型，例如 DataType.Int, DataType.String 等。这有助于框架更好地处理数据类型转换。

    */


    ///// <summary>
    ///// 公用
    ///// </summary>
    //public class BaseDBModelV2
    //{/// <summary>
    // /// 主键
    // /// </summary>
    //    [Description("主键")]
    //    [SugarColumn(IsPrimaryKey = true, ColumnDescription = "主键", Length = 50)]
    //    public string Id { get; set; }

    //    /// <summary>
    //    /// 创建时间
    //    /// </summary>
    //    [Description("创建时间")]
    //    [SugarColumn(ColumnName = "CreateTime", ColumnDescription = "创建时间", IsNullable = false)]
    //    public DateTime CreateTime { get; set; }



    //    /// <summary>
    //    /// 创建人
    //    /// </summary>
    //    [Description("创建人")]
    //    [SugarColumn(ColumnName = "CreateUser", ColumnDescription = "创建人", IsNullable = false, Length = 50)]
    //    public string CreateUser { get; set; }

    //    /// <summary>
    //    /// 创建人账号
    //    /// </summary>
    //    [Description("创建人账号")]
    //    [SugarColumn(ColumnName = "CreateUserCode", ColumnDescription = "创建人账号", IsNullable = false, Length = 50)]
    //    public string CreateUserCode { get; set; }

    //    /// <summary>
    //    /// 创建人姓名
    //    /// </summary>
    //    [Description("创建人姓名")]
    //    [SugarColumn(ColumnName = "CreateUserName", ColumnDescription = "创建人姓名", IsNullable = false, Length = 50)]
    //    public string CreateUserName { get; set; }
    //}

    #endregion
}
